<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>2020年1月18日17:33:14</title>
</head>
<body>
    <script>
        //对象
        //-创建对象的两种方式
        //1.Object法 ： let apple = Object();
        let TimVan = Object();
        TimVan.age = 999;
        TimVan.name = "TimVan";
        //2.花括号法
        let Tim = {age:666,isRight:false};
        Tim.name = "Tim";
        document.write("TimVan.age = "+TimVan.age+"<br>");
        document.write("Tim.name = "+Tim.name+"<br>");
        //-数组可以改对象，注意点调用如:Tim.name，和括号调用如Tim[name]
        let month = {
            Jan:1,
            Feb:2,
            Mar:3,
            Apr:4
        };
        for (let key in month){
            document.write("key = "+key+"，value ="+month[key]+"<br>");
        }
        document.write("<br><br><br>");


        //数据类型操作时的转换
        // 5 + null       // 返回 5          null 转换为 0
        document.write("5+null = "+ (5+null) +"<br>");
        // "5" + null   // 返回"5null"   null 转换为 "null"
        document.write("\"5\" + null = "+ ("5" + null) +"<br>");
        // "5" + 1       // 返回 "51"      1 转换为 "1"
        // "5" - 1        // 返回 4         "5" 转换为 5
        // "5"* 2       // 返回 10         "5" 转换为 5
        // "6" / 2       // 返回 3          "6" 转换为 6
        document.write("<br><br><br>");

        // typeof的一些用法
        // -JS的基本数据类型有5种：Number String Boolean null undefined
        //    对象类型Object 3种：Array Function Date
        // 特别的，ES5新增Symbol，Google提出BigInt
        // -typeof 是操作符，理论上可以不加括号（不推荐！）
        document.write(typeof NaN+"<br>");
        //-对象类型（Object，Date，null）的typeof是object，但是唯独function的typeof是function
        let apple = {};
        document.write(typeof apple+"<br>");
        //函数的typeof是function
        apple = function(){};
        document.write(typeof apple+"<br>");
        //Date对象（new）的typeof是function
        apple = new Date();
        document.write("Date对象（new）的typeof是 "+typeof apple+"<br>");
        //null的typeof是object
        apple = null;
        document.write("null的typeof是 "+typeof apple+"<br>");
        //数组的typeof是 object
        apple = [19,48,20,0,23];
        document.write("数组的typeof是 "+typeof apple+"<br>");
        document.write("<br><br><br>");


        //变量的作用域：函数中未声明的未全局变量，特别注意若函数未被调用，则提前使用该变量会出错！
        function  attack() {
             a = 30;
        }
        attack();
        document.write("a ="+a+"<br>");



    </script>

</body>
</html>